其他
Go 紧急修复 crypto/tls 安全问题
刚刚 Go 团队紧急发布了 Go1.16.6 和 Go 1.15.14,本次更新内容修复一个安全问题。
详细描述如下:
当为协商(谈判)的参数提供了错误类型的证书时,crypto/tls 客户端可能会 panic。net/http 客户端执行 HTTPS 请求也会受到影响。panic 可以由攻击者触发在有特权的网络位置不访问服务器证书的私钥,只要是受信任的服务器的 ECDSA 或 Ed25519 证书存在 (或者可以颁发),或者客户端配置有 Config.InsecureSkipVerify
。
禁用所有 TLS_RSA 密码套件 (即 TLS 1.0-1.2 密码没有 ECDHE 的套件),以及 TLS 1.3 客户端不受影响。
对于安全问题, Go 团队紧急发版,目前更新的版本包括:go1.17(master), go1.16.6, go1.15.14
请受到影响的,赶紧更新。
接下来,我们来看看引发 panic 的代码,以及修复代码。
安装使用方法:
{8:29}~/develop ➭ go get golang.org/dl/go1.16.6
go: downloading golang.org/dl v0.0.0-20210712223153-a48f8af6a227
{8:29}~/develop ➭ go1.16.6 download
Downloaded 0.0% ( 3266 / 130220543 bytes) ...
Downloaded 2.1% ( 2752496 / 130220543 bytes) ...
Downloaded 8.2% ( 10698672 / 130220543 bytes) ...
Downloaded 14.5% ( 18939760 / 130220543 bytes) ...
Downloaded 21.9% ( 28508080 / 130220543 bytes) ...
Downloaded 28.7% ( 37355440 / 130220543 bytes) ...
Downloaded 34.0% ( 44220080 / 130220543 bytes) ...
Downloaded 40.1% ( 52232032 / 130220543 bytes) ...
Downloaded 47.0% ( 61226544 / 130220543 bytes) ...
Downloaded 53.9% ( 70188592 / 130220543 bytes) ...
Downloaded 59.9% ( 78003632 / 130220543 bytes) ...
Downloaded 66.4% ( 86523280 / 130220543 bytes) ...
Downloaded 72.1% ( 93879840 / 130220543 bytes) ...
Downloaded 77.5% (100973888 / 130220543 bytes) ...
Downloaded 85.7% (111590608 / 130220543 bytes) ...
Downloaded 91.5% (119143168 / 130220543 bytes) ...
Downloaded 97.4% (126860416 / 130220543 bytes) ...
Downloaded 100.0% (130220543 / 130220543 bytes)
Unpacking /Users/maiyang/sdk/go1.16.6/go1.16.6.darwin-amd64.tar.gz ...
Success. You may now run 'go1.16.6'
{8:30}~/develop ➭ go version
go version go1.16.5 darwin/amd64
{8:30}~/develop ➭ go1.16.6 version
go version go1.16.6 darwin/amd64
详细链接
[1] go/issues/47143: https://github.com/golang/go/issues/47143
点击阅读原文,直接查看 go/issues/47143